// 登录鉴权 对Route的二次封装
// 1.引入
import React from 'react'
import { Route, Redirect } from 'react-router-dom'

import { isLogin } from '@/utils/storage'

// 2.创建
// const AuthRoute = ({path, component: Component}) => {
const AuthRoute = ({ component: Component, ...rest }) => {
  //  return <Route {...rest} component={Component}></Route>
  // 获取到本地存储的token
  // let token = localStorage.getItem('geek_token')
//   getToken()
  // 判断有无token
  // ...rest 是除了 component 其他之前所有的属性
  return (
    <Route
      {...rest}
      render={props => {
        // 没有登录
        if (!isLogin()) {
          // 调用拿到最新成果
          return (
            <Redirect
              to={{
                pathname: '/login',
                state: {
                  from: props.location.pathname, // 22222
                },
              }}
            />
          )
        }

        return <Component {...props}></Component>
      }}
    ></Route>
  )
}

// 3.导出
export default AuthRoute
